package com.xiangmo.travel.Service;

import com.xiangmo.travel.Dto.CollectDto;
import com.xiangmo.travel.Dvo.AttractionCollectCountDvo;
import com.xiangmo.travel.Dvo.CollectDvo;
import com.xiangmo.travel.Dvo.TableCollectDvo;
import com.xiangmo.travel.Result.PageToListResult;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 一个用户只能收藏一个景点，一个景点可以被多个用户收藏
 */
@Service
public interface CollectService {
    //根据景点的id查询 得出收藏数量
    Long getCollectNumByAttractionId(Long id);
    //根据用户的id查询 得出个人收藏表
    PageToListResult<CollectDvo> getCollectListByUserId(int pageNum, int pageSize, Long id);
    //新增收藏 如果用户id 和景点id 同时存在，新增失败，
    int setCollect(CollectDto collectDto);
    //删除收藏
    int deleteCollectById(Long userId, Long attractionsId);
    //判断用户是否以收藏过该景点
    int isCollectByUser(CollectDto collectDto);
    //根据景点的收藏数量进行排名，取前十名
    List<AttractionCollectCountDvo> getTop10SpotByCollectCount();
    //获取当前景点前6天收藏量
    List<TableCollectDvo> getTop6CollectById(Long id);
}
